home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Font;
- import java.awt.Graphics;
- import java.awt.LayoutManager;
- import java.awt.Rectangle;
-
- public class Histogram extends Applet {
- public static final int NUM_DATAPOINT = 400;
- public static final int NUM_DATAIN = 4;
- String fLastSample;
- String fFirstSample;
- int fNumSample;
- Rectangle fAppletBounds;
- Rectangle fDataBounds;
- byte[] fDataBuffer = new byte[1600];
-
- public void init() {
- Font var3 = new Font("Times", 0, 12);
- ((Container)this).setLayout((LayoutManager)null);
- ((Component)this).setFont(var3);
- this.fAppletBounds = ((Component)this).bounds();
- this.fDataBounds = ((Component)this).bounds();
- Rectangle var10000 = this.fDataBounds;
- var10000.x += 40;
- var10000 = this.fDataBounds;
- var10000.y += 6;
- var10000 = this.fDataBounds;
- var10000.width -= 42;
- var10000 = this.fDataBounds;
- var10000.height -= 30;
- String var1 = ((Applet)this).getParameter("BGColor");
- Color var2;
- if (var1 != null) {
- int var6 = Integer.parseInt(var1, 16);
- var2 = new Color(var6);
- ((Component)this).setBackground(var2);
- } else {
- var2 = ((Component)this).getBackground();
- }
-
- var1 = "100%";
- LabelPanel var5 = new LabelPanel(var1, 2);
- ((Component)var5).reshape(this.fAppletBounds.x, this.fAppletBounds.y, 30, 14);
- ((Component)var5).setBackground(var2);
- var5.setFont(var3);
- ((Container)this).add(var5);
- var1 = "50%";
- var5 = new LabelPanel(var1, 2);
- ((Component)var5).reshape(this.fAppletBounds.x, this.fAppletBounds.y + 50, 30, 14);
- ((Component)var5).setBackground(var2);
- var5.setFont(var3);
- ((Container)this).add(var5);
- var1 = "0%";
- var5 = new LabelPanel(var1, 2);
- ((Component)var5).reshape(this.fAppletBounds.x, this.fAppletBounds.y + 92, 30, 14);
- ((Component)var5).setBackground(var2);
- var5.setFont(var3);
- ((Container)this).add(var5);
- var1 = ((Applet)this).getParameter("firstSample");
- var5 = new LabelPanel(var1, 0);
- ((Component)var5).reshape(this.fAppletBounds.x + 40, this.fAppletBounds.y + this.fAppletBounds.height - 20, 110, 20);
- ((Component)var5).setBackground(var2);
- var5.setFont(var3);
- ((Container)this).add(var5);
- var1 = ((Applet)this).getParameter("lastSample");
- var5 = new LabelPanel(var1, 2);
- ((Component)var5).reshape(this.fAppletBounds.x + this.fAppletBounds.width - 110, this.fAppletBounds.y + this.fAppletBounds.height - 20, 110, 20);
- ((Component)var5).setBackground(var2);
- var5.setFont(var3);
- ((Container)this).add(var5);
- var1 = ((Applet)this).getParameter("numData");
- if (var1 == null) {
- this.fNumSample = 0;
- } else {
- this.fNumSample = this.StrToInt(var1);
- }
-
- int var4 = 0;
- var1 = ((Applet)this).getParameter("data1");
- if (var1 != null) {
- this.parseData(var4, var1);
- var4 += 400;
- }
-
- var1 = ((Applet)this).getParameter("data2");
- if (var1 != null) {
- this.parseData(var4, var1);
- var4 += 400;
- }
-
- var1 = ((Applet)this).getParameter("data3");
- if (var1 != null) {
- this.parseData(var4, var1);
- var4 += 400;
- }
-
- var1 = ((Applet)this).getParameter("data4");
- if (var1 != null) {
- this.parseData(var4, var1);
- var4 += 400;
- }
-
- }
-
- public void paint(Graphics var1) {
- var1.setColor(Color.black);
- var1.drawRect(this.fDataBounds.x, this.fDataBounds.y, this.fDataBounds.width, this.fDataBounds.height);
- var1.drawLine(this.fDataBounds.x, this.fDataBounds.y, this.fDataBounds.x - 6, this.fDataBounds.y);
- var1.drawLine(this.fDataBounds.x, this.fDataBounds.y + 50, this.fDataBounds.x - 6, this.fDataBounds.y + 50);
- var1.drawLine(this.fDataBounds.x, this.fDataBounds.y + 100, this.fDataBounds.x - 6, this.fDataBounds.y + 100);
- this.drawDataPoint(var1);
- }
-
- public int StrToInt(String var1) {
- int var2 = 0;
- int var3 = 0;
- int var4 = 0;
- int var5 = 0;
- int var7 = var1.length();
- if (var7 == 1) {
- var5 = var1.charAt(0) - 48;
- } else if (var7 == 2) {
- var4 = var1.charAt(0) - 48;
- var5 = var1.charAt(1) - 48;
- } else if (var7 == 3) {
- var3 = var1.charAt(0) - 48;
- var4 = var1.charAt(1) - 48;
- var5 = var1.charAt(2) - 48;
- } else if (var7 == 4) {
- var2 = var1.charAt(0) - 48;
- var3 = var1.charAt(1) - 48;
- var4 = var1.charAt(2) - 48;
- var5 = var1.charAt(3) - 48;
- }
-
- int var6 = var2 * 1000 + var3 * 100 + var4 * 10 + var5;
- return var6;
- }
-
- public void parseData(int var1, String var2) {
- for(int var3 = 0; var3 < 400; var3 += 4) {
- this.fDataBuffer[var3 + var1] = (byte)((var2.charAt(var3) & 255) - 48);
- this.fDataBuffer[var3 + var1 + 1] = (byte)((var2.charAt(var3 + 1) & 255) - 48);
- this.fDataBuffer[var3 + var1 + 2] = (byte)((var2.charAt(var3 + 2) & 255) - 48);
- }
-
- }
-
- public void drawDataPoint(Graphics var1) {
- int var8 = 1;
-
- for(int var4 = 0; var4 < this.fNumSample * 4; var4 += 4) {
- byte var6 = this.fDataBuffer[var4];
- byte var5 = this.fDataBuffer[var4 + 1];
- byte var7 = this.fDataBuffer[var4 + 2];
- int var2 = this.fDataBounds.x + var8;
- int var3 = this.fDataBounds.y + this.fDataBounds.height;
- var1.setColor(Color.darkGray);
- var1.drawLine(var2, var3 - var5, var2, var3 - var6);
- var1.setColor(Color.blue);
- var1.drawLine(var2, var3 - var7 - 1, var2, var3 - var7);
- ++var8;
- }
-
- }
- }
-